from collections import deque R, C = map(int, input().split()) delta = { 'U': (-1, 0), 'L': (0, -1), 'D': (1, 0), 'R': (0, 1) } m = [list(input().strip()) for _ in range(R)] for i in range(R): for j in range(C): if m[i][j] == 'S': s = i*C+j if m[i][j] == 'G': g = i*C+j cmd = input().strip() q, vis = deque([(s, 0, 0)]), set() while q: u, k, fix = q.popleft() if u == g: print(fix), exit(0) state = 51*u+k if state not in vis: vis.add(state) r, c = u//C, u%C if k < len(cmd): dr, dc = delta[cmd[k]] ok = 0<=r+dr